package cn.iocoder.yudao.module.biz.controller.admin.htHiddentrouble.vo;

import cn.iocoder.yudao.module.infra.dal.dataobject.oss.OssDO;
import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.*;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 隐患信息创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class HtHiddentroubleCreateReqVO extends HtHiddentroubleBaseVO {

    @ApiModelProperty(value = "隐患名称", required = true)
//    @NotNull(message = "隐患名称不能为空")
    private String htName;

    @ApiModelProperty(value = "检查日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date checkDate;

    @ApiModelProperty(value = "隐患地点")
    private String place;

    @ApiModelProperty(value = "隐患类别")
    private String category;

    @ApiModelProperty(value = "检查类型")
    private String checkType;

    @ApiModelProperty(value = "隐患等级")
    private String level;

    @ApiModelProperty(value = "隐患状态")
    private String state;

    @ApiModelProperty(value = "隐患来源")
    private String source;

    @ApiModelProperty(value = "隐患产生原因")
    private String causeReason;

    @ApiModelProperty(value = "隐患描述")
    private String description;

    @ApiModelProperty(value = "检查人Id")
    private Long checkPeoId;

    @ApiModelProperty(value = "检查单位")
    private String checkDeptId;

    @ApiModelProperty(value = "所属单位")
    private String beCheckDeptId;

    @ApiModelProperty(value = "危险源")
    private String riskId;

    //-------------隐患整改相关属性---------

    @ApiModelProperty(value = "整改期限")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date rectificationLimit;

    @ApiModelProperty(value = "整改类型")
    private String rectificationType;

    @ApiModelProperty(value = "整改责任部门")
    private String rectificationDeptId;

    @ApiModelProperty(value = "整改责任人")
    private Long rectificationPeoId;

    //-------------隐患验收相关属性---------
    @ApiModelProperty(value = "验收销号人")
    private String cancelPeoId;

    @ApiModelProperty(value = "验收销号部门")
    private String cancelDeptId;

    //-----下达相关属性-----
    @ApiModelProperty(value = "下达方式")
    private String issueType;

    @ApiModelProperty(value = "下达日期")
    private String issueDate;

    //排查计划执行ID、排查项目ID
    @ApiModelProperty(value = "排查计划执行ID")
    private String planExeId;

    @ApiModelProperty(value = "排查计划详情ID")
    private String planDetailId;

    @ApiModelProperty(value = "隐患下达人ID")
    private Long issuePeoId;

    //------附件、图片-----
    List<OssDO> ossFile=new ArrayList<OssDO>();
    List<OssDO> ossImg=new ArrayList<OssDO>();

}
